﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;

namespace XuZhou.SmartWaterConservancy.HeHu.Waters
{
    public interface IWaterStationRepository : IRepository<WaterStationBase, Guid>
    {
        /// <summary>
        /// 根据站点编码获取站点
        /// </summary>
        Task<WaterStationBase> FindByCodeAsync(string code, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取指定类型的站点列表
        /// </summary>
        Task<List<WaterStationBase>> GetListByTypeAsync(WaterStationType stationType, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取水质站点
        /// </summary>
        Task<WaterQualityStation> GetWaterQualityStationAsync(Guid id, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取水位站点
        /// </summary>
        Task<WaterLevelStation> GetWaterLevelStationAsync(Guid id, CancellationToken cancellationToken = default);

        /// <summary>
        /// 获取工情站点
        /// </summary>
        Task<EngineeringStation> GetEngineeringStationAsync(Guid id, CancellationToken cancellationToken = default);
    }
}
